Method for transceiving media files and device for transmitting/receiving using same

ABSTRACT

A method and apparatus for transmitting and receiving an MPEG-2 TS-based media file are provided. In the method of transmitting an MPEG2 Transport Stream (TS)-based media file, a Presentation Time Stamp (PTS) of a Presentation Unit (PU) is mapped to a Media Presentation Time (MPT) for synchronization with other media with respect to at least one program element forming a program included in the media file; and synchronization information including the mapped media presentation time is transmitted together with the media file, wherein the media presentation time is provided for a first PU in a segment of the transmitted media file.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims the benefit of, U.S. application Ser. No. 13/811,198 filed on Jan. 24, 2013, now allowed, which is a 35 USC §371 National Stage entry of International Application No. PCT/KR2011/005307 filed on Jul. 19, 2011, and claims the benefit and priority to U.S. Provisional Application No. 61/365,746 filed on Jul. 19, 2010 and U.S. Provisional Application No. 61/453,948 filed on Mar. 17, 2011, each of which is incorporated by reference in its entirety herein.

BACKGROUND

The present disclosure relates to a method and apparatus for transmitting and receiving an MPEG-2 Transport Stream (TS)-based media file.

Nowadays, digital broadcasting such as terrestrial, cable or satellite broadcasting, or Digital Multimedia Broadcasting (DMB) mostly streams AV (Audio/Video) contents using MPEG-2 TS.

In addition, a multimedia service, which provides contents over an Internet Protocol (IP) network as a main transport network, is activated according to a rapid growth of the internet. The digital broadcasting is developing towards the direction of requiring more traffic like stereoscopic 3-dimensional (3D) video broadcasting, Ultra High Definition (UHD) broadcasting, 3D multi-view video broadcasting or hologram broadcasting.

However it may be less efficient to transport content of higher resolution than the prior art HDTV using MPEG-2 TS having a sequence of fixed length packets of 188 bytes over the IP network.

SUMMARY

Embodiments provide a method and apparatus for transmitting and receiving an MPEG-2 TS-based media file for playing the same back in synchronization with another media.

In one embodiment, a method of transmitting an MPEG2 TS-based media file, the method includes: mapping a Presentation Time Stamp (PTS) of a Presentation Unit (PU) to a Media Presentation Time (MPT) for synchronization with other media with respect to at least one program element forming a program included in the media file; and transmitting synchronization information including the mapped media presentation time together with the media file, wherein the media presentation time is provided for a first PU in a segment of the transmitted media file.

In another embodiment, a method of receiving an MPEG2 TS-based media file, the method includes: receiving the media file with synchronization information; extracting an MPT of a PU for at least one program element forming a program included in the media file; and playing back the media file using the extracted media presentation time, wherein the MPT is mapped from a PTS of a first PU in a segment of the received media file.

In further another embodiment, an apparatus for transmitting an MPEG2 TS-based media file, the apparatus includes: a controller mapping a PTS of a first PU among PUs included in each segment or a PTS of a first PU after a PTS discontinuity occurs to an MPT for synchronization with other media for a program element forming a program included in the media file; and a network interface unit transmitting synchronization information including the mapped MPT together with the media file.

In still further another embodiment, an apparatus for receiving an MPEG2 TS-based media file, the apparatus includes: a network interface unit receiving the media file with synchronization information; a decoding unit decoding the received media file; and a synchronization unit synchronizing the decoded media file with other media using an MPT included in the synchronization information, wherein the MPT is mapped from a PTS of a first PU in a segment of the received media file or a PTS of a first PU after a PTS discontinuity occurs.

According to embodiments, since MPEG-2 TS-based media file is transported with synchronization information including media presentation time, it is possible to randomly access to the media file and to easily synchronize the media file to other media installed inside a receiving apparatus or attached externally and play the media file.

In addition, since media presentation time for a time point when discontinuity occurs at a Presentation Time Stamp (PTS) is provided to a receiving apparatus side, the media file can be played back in synchronization with the media presentation time even in a case where the PTS discontinuity occurs.

The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a view illustrating a configuration of an ISO Base Media file format.

FIG. 2 is a view illustrating a structure of a MPEG2 Packetized Elementary Stream (PES) packet.

FIG. 3 is a view illustrating a structure of MPEG TS.

FIG. 4 is a graph illustrating a Presentation Time Stamp (PTS) of MPEG2 Transport Stream (TS) vs. a Media Presentation Time (MPT).

FIG. 5 is a view illustrating an embodiment of a method of presenting any Presentation Unit (PU) included in MPEG2 TS.

FIG. 6 is a block diagram illustrating a schematic configuration of an apparatus for transmitting a media file according to an embodiment.

FIG. 7 is a flowchart illustrating a method of transmitting a media file according to an embodiment.

FIG. 8 is a view illustrating an embodiment of a method of presenting any PU included in MPEG2 TS in synchronization with a media play timeline.

FIGS. 9 and 10 are views illustrating configurations of a Segment Index Box (SIB) including synchronization information.

FIGS. 11 and 12 are views illustrating configurations of an eXtensible Markup Language (XML) file including synchronization information.

FIG. 13 is view of illustrating an embodiment of a media file structure transmitted from a transmitting apparatus according to an embodiment.

FIG. 14 is a block diagram illustrating a configuration of an apparatus for receiving a media file according to an embodiment.

FIG. 15 is a flow chart illustrating a method of receiving a media file according to an embodiment.

FIG. 16 is a view illustrating an embodiment of a segment list created by using a Media Presentation Description (MPD).

FIG. 17 is a view illustrating an embodiment of a method of playing an MPEG2 TS-based media file in synchronization with a 3GPP media file.

FIGS. 18 and 19 are views illustrating embodiments of a method of implementing a media file using an MPD of MPEG Dynamic Adaptive Streaming over HTTP (DASH).

FIG. 20 is a block diagram illustrating a configuration of an IPTV receiver according to a first embodiment of the present invention.

FIG. 21 is a block diagram illustrating a configuration of an IPTV receiver according to a second embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Reference will now be made in detail to the embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings.

A method of and apparatus for transmitting and receiving MPEG-2 Transport Stream (TS)-based media file according to an embodiment will be described in detail with reference to the accompanying drawings. The invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein; rather, that alternate embodiments included in other retrogressive inventions or falling within the spirit and scope of the present disclosure can easily be derived through adding, altering, and changing, and will fully convey the concept of the invention to those skilled in the art.

FIG. 1 illustrates a configuration of an ISO Base Media file format. In order to stream the illustrated ISO Base Media file format, a “fragmented file” format may be adopted.

Referring to FIG. 1, the fragmented file may be formed by dividing media tracks into plural fragments, each of which includes a movie fragment (moof) box and a media data (mdat) box.

The mdat box after the moof box includes fragment media data and this combined moof-mdat pair may form a single fragment.

In the fragmented ISO Base Media file format, general timing fields may be provided a Sample Table (ST) box such as a decoding time-to-sample (stts) box or a composition time-to-sample (ctts) box. However since the above described timing fields exist in moov (Movie) box, they are rarely used in transporting timing information.

Meanwhile since the moov box is finely encoded, it is assumed all the previous samples are valid to a client side, for example a receiving apparatus, in order to access to a desired sample. The above described assumption is not proper to a streaming application.

A Movie Fragment Random Access (mfra) file positioned at the end of a media file may be used to provide a reference to fragments including random access points.

However the mfra box uses an absolute byte offset from the beginning of a file referring to the fragments and is not fragmented. Therefore it can provide timing information of a fragmented media file in a stored state like a recording process but is not possibly used in streaming application.

Accordingly, the ISO Base Media file format as shown in FIG. 1 does not provide timing information for streaming the fragmented tracks.

On the other hand, a segment is a unit that a media file is transmitted and received and a configuration thereof may be variously defined.

For example, in “3GPP Adaptive HTTP Streaming (AHS)”, “OIPF HTTP Adaptive Streaming (HAS)”, and “HTTP Streaming of MPEG media”, the segment includes one or more movie fragments and each segment has approximately identical duration in one period. In “3GPP AHS”, the entire structure of the segment is defined and it is allowed to use the segment as a fine download unit or to download a portion of the segment using a byte range.

A 3GPP file format may include a Segment Index (sidx) box which provides a track play start time for the tracks in the fragment in order to provide timing information on lost tracks and the play times may be recovered from decoding times.

A “3GPP AHS” client may fetch a segment using an approximately created timeline and reconstruct a timing of each track using the sidx box. Once the entire segment or a portion of the segment is downloaded, the timing information may be included in the file in order to be used for playing afterward.

In “Microsoft Smooth Streaming (MS SS)”, the segment may be defined as one fragment, and the one fragment may include one track. The fragment is a basic unit for downloading and the term ‘segment’ is not used.

The “MS SS” may provide a FragmentTime attribute for each fragment within a ManifestResponse file and the information may be provided in a StreamFragmentElement field.

In the foregoing “MS SS”, since only one track exists in the track fragment, a timing of the track fragment can be sufficiently represented by a single FragmentTime. The timing information may be requested for each track in order to enable a start of a synchronized presentation after a random access and a switch between replaceable presentations.

Storing of the “MS SS” media file is performed in a file in which the timing information is stored, which is performed by storing the media file in the MS PIFF or including the timing information in a mfra box.

FIG. 2 illustrates an MPEG2 PES packet structure and FIG. 3 illustrates a MPEG2 TS structure.

Referring to FIG. 2, an MPEG2 video stream compressed by an MPEG encoder may be packetized into a PES packet having a predetermined size.

The PES packet includes a PES header and a PES packet data field and the PES header may include an optional PES HEADER. In addition, the optional PES HEADER includes an optional field 510 and the optional field 510 includes a PTS field and a DTS field.

The PTS field may include Presentation Time Stamp (PTS) information and the DTS field may have Decoding Time Stamp (DTS) information.

Synchronization between a video stream and an audio stream may be achieved with Time Stamp, which is time information representing when to present each decoding unit called an access unit of the video and audio streams.

For example, a PTS in the audio stream and a PTS and a DTS in video stream may be provided as the time information. The video and audio streams may be synchronized with each other by comparing the foregoing time stamp and a System Time Clock (STC) which is a time reference of a decoder and determining whether to present them.

Referring to FIG. 3, a transport packet of MPEG2 TS includes 4 byte header and a following 184 byte payload and has total 188 byte size regardless of an intended transport mechanism.

The payload may include a PES packet, a Program Association Table (PAT), a Program Map Table (PMT) or the like, and the header may include a plurality of fields such as a sync byte and an adaptation field.

The adaptation field may include an optional field and the optional field may include a Program Clock Reference (PCR) field to which PCR information of time reference information is written.

The PCR is inserted to a header of MPEG2 TS for synchronization between an encoder and a decoder as a reference clock for PTS and STS.

The PTS is used for synchronized-presentation of element streams included in one program, but does not have any relationship of synchronization with an external clock such as the Universal Time Coordinated (UTC).

In addition, continuity of the PTS is not secured, so discontinuity or reset may occur in the PTS.

For example, in an application field of MPEG2 TS such as digital video broadcasting, the foregoing discontinuity of the PTS may be delivered by the PCR and a discontinuity indicator as shown in FIG. 3 immediately before the corresponding event occurs.

The PTS may be used for synchronized presentation of one program, but is not sufficient to be used in presentation in synchronization with a general presentation timeline, for example, a media presentation timeline used in a HTTP streaming service.

In order to use the PTS in synchronization with the general presentation timeline, initial synchronization, synchronization after a random access and synchronization after the PTS discontinuity are needed to be considered.

FIG. 4 illustrates a graph of relationship between PTS of MPEG2 TS and Media Presentation Time (MPT).

In FIG. 4, a solid line indicates a media presentation timeline with which the presentations in all the media are synchronized, and a dashed line indicates a PTS timeline representing a local presentation time within a program.

The MPT indicates times within the corresponding file as defined in the ISO Base Media file format and starts from ‘0’.

The PTS may be represented as a time-scaled PTS timeline that a value measured in 90 KHz clock is represented as a 33 bit size.

Referring to FIG. 4, the media presentation timeline may start from presentation start offset provided in a manifest file such as Media Presentation Description (MPD).

The PTS timeline may start from any point and have discontinuity d in some cases.

Other than ISO Base Media, MPEG TS allows direct fragmentation within a range where the fragment has a 188 byte size. MPEG2 TS-based “Apple HTTP Streaming” or “OIPF HAS” uses the same scheme as the one that the MPEG2 TS is segmented into segments in a predetermined period.

In this case, the segment period is not generally precise for each media component. The media component of a program included in the MPEG2 TS divides the MPEG2 TS into segments in a rough period using a PCR or a PTS as a reference, so the segment periods may vary among tracks.

“Apple HTTP Streaming” and “OIPF HAS” do not designate or refer to additional ways representing timing information for MPEG2 TS, downloads MPEG TS using a rough timeline and sets a start time of the segment to the rough timeline.

Since “MS SS” is not related to delivery of MEG2 TS media files, it may be difficult to directly apply “MS SS” to the transporting of the MPEG2 TS. In addition, “MS SS” allows only one track for each fragment, so “MS SS” is not suitable to a transport stream having a plurality of multiplexed programs.

After downloading a portion of or the entire file, the corresponding file is required to be stored as an MPEG TS file and the timing information is require to be valid for future playback. Accordingly perfect synchronization with the media presentation timeline in the MPEG2 TS file transport using “MS SS” may be hard to achieve.

FIG. 5 illustrates an embodiment of a method of presenting any presentation unit (PU) included in MPEG2 TS.

Referring to FIG. 5, MPEG2 TS packets respectively have a fixed 188 byte size and may be transported in a segment unit including one or more packets, for example, 3 MPEG2 TS packets.

Meanwhile, a client side, for example, a receiving apparatus may try to receive any segment, synchronize any presentation unit PU_(y) with the media presentation line and present PU_(y).

At this time, a PTS discontinuity may occur in a previous segment of a segment including the presentation unit PU_(y) to be presented and thus the corresponding segment may not be received to be valid due to the PTS discontinuity in a random access case.

That is, in a MPEG2 TS-based media file, precise media presentation time information for a PU is not provided for a random access or a continuous access in a segment. This may cause more limitation in the PTS discontinuity case.

When the MPEG2 TS is not synchronized with the media presentation time, internally stored or streamed MPECG2 TS-based media file and other media, for example, ISO Bas Media file format media or another MPEG TS-based media are not synchronized with each other and the media file may not be played back.

According to an embodiment, MPEG2 TS media file may be synchronized with other media by signaling to map a timeline of MPEG2 TS-based media file to the media presentation time.

For example, a transmitting apparatus according to an embodiment may map a PTS of a PU for at least one program element forming a program included in the media file to the media presentation time and synchronization information (abbreviated as sync information) including the mapped media presentation time may be transported with the mapped media presentation time.

FIG. 6 illustrates a block diagram of a schematic configuration of a media file transmitting apparatus according to an embodiment. The illustrated transmitting apparatus may include a controller 110 and a network interface unit 120.

Referring to FIG. 6, the controller 110 may generate sync information to be provided to a client side, for example, a receiving apparatus, by mapping a PTS of a PU for a program element forming a program included in an MPEG2 TS-based media file to a media presentation time.

The network interface unit 120 may transmits sync information including the mapped media presentation time to the receiving apparatus with the MPEG2 TS-based media file.

According to an embodiment, the sync information transmitted to the client side may be provided to a first PU of each segment included in any one program element.

In this case, the sync information may be used to recover a presentation time for all the PUs from the first PU of a specific segment to a next PTS discontinuity occurring point included in MPEG2 TS.

In addition, the sync information may be provided for a first PU after the PTS discontinuity occur in the segment, and the sync information may be used to recover the presentation time for all the PUs from the PTS discontinuity occurring point to a next PTS discontinuity occurring point of a next PTS discontinuity included in an MPEG2 TS.

Meanwhile, the PTS discontinuity does not occur any more, the sync information occurring point may be used to recover a presentation time for all the PUs from the PTS discontinuity occurring point to an end of the corresponding segment included in the MPEG2 TS.

The MPEG2 TS-based playback may include a plurality of program elements belonging to one program and the sync information for any one of the program elements may be transported to the client side.

That is, when any one program element is synchronized with the media presentation time, the rest of the program elements may be synchronized with one program using a synchronization mechanism provided by the MPEG2 TS.

Hereinafter a method of transmitting a media file according to embodiments will be described with reference to FIGS. 7 to 13.

FIG. 7 is a flowchart illustrating a method of transmitting a media file according to an embodiment. The illustrated method of transmitting a media file will be described in connection with the apparatus for transmitting a media file according to the embodiment illustrated in FIG. 6.

Referring to FIG. 7, the controller 100 of the transmitting apparatus 100 selects one of program elements included in a media file to be transmitted (operation S200).

For example, the controller 100 may select video tracks among video tracks and audio tracks forming the program as a reference program element.

Then the controller 110 maps a PTS of a PU for the selected program element to a media presentation time (operation S210).

Referring to FIG. 8, media presentation times, for example, MPT₁ to MPT_(n) for a first PU of a segment among PUs belonging to a specific program element may be transported to the client side as sync information.

Meanwhile, when a specific presentation unit PU_(y) is to be presented, a media presentation time MPT0 for PUy may be calculated by mapping a PTS of the PU as the following equation 1 MPT_(o)=((PTS₁−PTS_(k))/timescale_(PTS))*timescale+MPT_(n)  (1)

In equation 1, PTS₁ denotes a PTS of PU_(y), PTS_(k) denotes a PTS of a presentation unit PU_(x) positioned before the PU_(y), and MPT_(n) denotes a media presentation time for the PU_(x).

timescale_(PTS) denotes a clock of the PTS, for example 90 kHz, and timescale denotes a clock of the MPT.

For example, the controller 110 of the transmitting apparatus 100 recovers PTS_(s), namely, PTS₁ and PTS_(k) for PU_(y) and PU_(x) respectively, and calculates a next media presentation time MPT₀ by linear interpolation like equation 1 using the recovered PTS₁ and PTS_(k).

As shown in FIG. 8, after the occurrence of the PTS discontinuity in the segment, a media presentation time, for example, MPT_(m) for the first PU may transported to the client side as sync information.

Accordingly, even in a case where the discontinuity occurs in a specific segment, the media presentation time for the specific presentation unit may be calculated by the foregoing linear interpolation with reference to the equation 1.

As the above, a method of mapping the PTS of the presentation unit to a media presentation time is described for an exemplary case where PU_(x) and PU_(y) are included in one program element with reference to FIG. 8. However in a case where the PU_(x) and PU_(y) may be respectively included to different program elements, a media presentation time for a specific presentation unit may be calculated using the foregoing method.

The network interface unit 120 transports sync information including the calculated media presentation times to the client side with the media file (operation S220).

According to the foregoing mapping scheme, a specific presentation unit may be searched for on the basis of the PTS for a given media presentation time, which may be used in random access or stream switching.

For example, PTS1 which is a PTS value for any media presentation time MPT0 may be calculated as the following equation 2. PTS₁=((MPT_(o)−MPT_(n))/timescale)*timescale_(PTS)+PTS_(k)  (2)

When the media presentation time is represented by a second unit, not by a clock, the equation 2 may be simplified as the following equation 3 PTS₁=(MPT_(o)−MPT_(n))*timescale_(PTS)+PTS_(k)  (3)

According to an embodiment of the present invention, the transmitting apparatus 100 transmits media presentation times (MP₁, MP_(m) and MPT_(n)) for the first PU or a first PU after the occurrence of the PTS discontinuity among the PUs included in the segment as shown in FIG. 8, or obtains a media presentation time MPT₀ for another PU according to the foregoing mapping method and transports the obtained MPT to the client side as the sync information.

Hereinafter a configuration of sync information transported to the client side will be described in detail with reference to FIGS. 9 to 12.

The sync information may be structuralized as the following way.

At first, any one of a plurality of the program elements included in a program of an MPEG2 TS media file is selected as a reference program element and a media presentation time for a first PU of the selected reference program is provided to the client side.

In order to handle the PTS discontinuity included in a segment, a duration from the first PU of the selected reference program to a time point of a next PTS discontinuity occurrence (or to an end of the corresponding segment when the PTS discontinuity does not occur) is provided to the client.

When the PTS discontinuity occurs twice or more, the duration from any one PTS discontinuity to a next PTS discontinuity (or to an end of the corresponding segment when the PTS discontinuity does not occur) is provided to the client side.

In addition, a PTS of a PU of the reference program element immediately after the PTS discontinuity occurrence may be also provided to the client side.

A media presentation time for all the PUs included in the segment may be recovered by using the sync information created as the forgoing.

However, in addition to signaled information for synchronized presentation as the foregoing, a duration before and after the PTS discontinuity may be more divided into smaller durations and this additional signaling may be used by the client side for a random access or the like.

As described above, although a signaling of a presentation time for any one program element in a program may be necessary and sufficient to synchronize any program element with a media presentation timeline, syntax of the sync information may enable signaling of presentation times for a plurality of program elements.

This may be advantageous for the client to try to selectively present program elements.

For example, when an MPEG2 TS program includes two audio tracks L1 and L2 of different languages, the client may want to playback only L1 track between the audio tracks.

At this time, if signaling for the media presentation time is provided only to L2, the client needs to extract PTS information from L1 to recover presentation times. However signaling for media presentation time is provided to both L1 and L2, the client does not need to extract separate PTS information to recover the presentation times.

In order to segment a transmitted MPEG2 TS media file, the media file is roughly segmented according to a reference track period as required from a transport protocol and boundaries of the segments may be adjusted to MPEG2 TS packets.

According to an embodiment, the foregoing sync information may be represented as a binary coded format file or an XML file.

FIGS. 9 and 10 illustrate embodiments of a configuration of a segment index box including sync information, which is an example representing the sync information in a binary format.

According to an embodiment, the sync information as described in relation to FIGS. 6 to 8 may be represented in a binary format on the basis of general ISO Base Media file format data types and has a similar structure to a sidx box used in 3GPP AHS.

Referring to FIG. 9, the sync information may be formed of an MPEG2 segment index box m2si, and the m2si box may be included one or more in a specific segment.

The m2si box may provide media presentation time for PUs included in MPEG2 TS with respect to one or more program elements of MPEG2 TS.

The segment may be subdivided into a plurality of MPEG2 TS packet groups (MTPGs) and the MTPGs may be formed of a set of adjacent MPEG2 TS packets.

When one program element, for example, a video program element is selected as a reference program element, at least a first sample, namely, a presentation time for a PU of the reference program element may be provided in a first loop.

A second loop may be performed on each MTPG included in a segment starting from the first MTPG. In the second loop, a presentation duration of a reference program element of each MTPG may be provided with byte offsets from a first byte of an MPEG2 TS to a corresponding MTPG in the segment.

The presentation duration of the MTPG may be a sum of presentation durations of all the PUs of the reference program elements belong to the MTPG.

In the second loop, information on whether a random access point (RAP) is included in a reference program element of an MTPG may be provided. When the RAP is included, a presentation time offset from a presentation time for a first sample in the corresponding segment may be more provided.

Other than sidx box of 3GPP AHS, the m2si box may be positioned at a start portion of the segment and does not allow a hierarchical structure, so that the m2si box may be easily removed.

Referring to a syntax structure as shown in FIG. 10, flags may form a 24-bit integer flag and defined as follows.

timescale-present represents whether time scale of a media presentation time exists in the corresponding box and a flag value thereof may be ‘0x000001’.

pts-present represents whether a PTS of a first PU of a reference track is included for all the written MTPGs and a flag value thereof may be ‘0x000002’.

timescale is a time scale of media presentation timeline. When the timescale is provided one or more in one media presentation, a value thereof may be identical for all the presentations.

reference-PID provides packet identifiers (PIDs) of MPEG2 TS packets transporting a reference program element.

program_element_count represents the number of program elements indexed in a next loop and may be designated 1 or a greater value.

reference_count represents the number of program elements indexed in a second loop and may have 1 or a greater value.

PID represents PIDs of MPEG2 TS packets transporting program elements therein to which representation_time is provided and a PID in the corresponding loop is identical to the reference_PID.

presentation_time may represent a presentation time for a first sample in a program element identified by the PID expressed in the timescale.

Reference_offset may represent a byte distance from a first byte of an MPEG2 TS segment to a first byte of an MPTG referred by repeating of the corresponding loop.

MTPG_duration provides a presentation period of a reference program element for the referred MPTG and may be represented in a time scale of a corresponding track.

PTS may represent an MPEG2 TS PTS of a first PU of a reference program element of the corresponding MPTG.

contains_RAP may be set to ‘1’ in order to represent that the reference program element in the referred MPTG includes a RAP.

discontinuity may be set to ‘1’ in order to represent that the corresponding MPTG starts from discontinuity.

RAP_delta_time may provide a presentation time offset of a RAP in order to correspond to a presentation time for a first sample of the reference program element in the segment, when contains_RAP is set to ‘1’. When contains_RAP is set to ‘0’, the RAP_delta_time may be maintained as ‘0’.

FIGS. 11 and 12 illustrate embodiments of a configuration of an XML file including sync information.

Referring to FIG. 11, an XML file may include a media presentation time for PUs of one or more program elements of an MPEG2 TS and the segment may be subdivided into adjacent MTPGs.

When one program element, for example, a video program element is selected as a reference program element, a presentation time for at least a first sample, namely, a presentation unit of the reference program element is provided in a first element.

In addition, a second element is for each MTPG included in a segment starting from a first MTPG. The second element may provide presentation periods of a reference program element for each MTPG of the segment.

The presentation period of the MTPG may be a sum of presentation periods of all the PUs of a reference program element belonging to the corresponding group.

The second element may be provided information on whether the reference program element of the MTPG includes a RAP. When the RAP is included, a presentation time offset may be further provided to a presentation time for a first sample in the corresponding segment.

FIG. 11 illustrates a schema of sync information having a configuration as shown in FIG. 10 and the detailed description for the illustrated schema is the same as described above in relation to FIGS. 9 and 10. Therefore description thereof will be omitted.

FIG. 13 illustrates an embodiment of a file structure of a media file transmitted from a transmitting apparatus according to an embodiment.

Referring to FIG. 13, an m2si box described in relation to FIGS. 9 and 10 may be attached before an MPEG2 TS divided into a segment unit. The MPEG2 TS data may be selectively encapsulated in a mdat box to make an access and demarcation easy.

As illustrated in FIG. 13, when the sync information is appended in a binary format, the m2si box may be attached before the mdat box.

The media file format may start from a segment type (styp) box, the styp box may have a boxtype set as ‘styp’, a brand of ‘etsf’ and a minor_version set to ‘1’. Except this, the styp box may have the same syntax structure as a file type box (ftyp) defined in the ISO/IEC 14496-12 ISO Base Media file format.

Hereinafter embodiments of a media file receiving method and apparatus will be described with reference to FIGS. 14 and 15.

A receiving apparatus 300 according to an embodiment may receive a media file with sync information, extract a media presentation time of a PU from the received sync information and then playback the media file using the extracted media presentation time.

A configuration of the sync information received by the receiving apparatus 300 may be the same as described above in relation to FIGS. 6 to 13. Therefore detailed description thereof will be omitted.

FIG. 14 illustrates a block diagram of a configuration of a media file receiving apparatus according to an embodiment. The illustrated receiving apparatus 300 may include a network interface unit 310, a decoding unit 320 and a synchronization unit 330.

Referring to FIG. 14, the network interface unit 310 of the receiving apparatus 300, for example, a HTTP interface, receives a media file with the sync information and the decoding unit 320 may decode the received media file and output the decoded media file.

The synchronization unit 330 may synchronize the decoded media file with a media presentation timeline using a media presentation time included in the sync information.

For example, the network interface unit 310 may receive sync information having the configuration as described above in relation to FIGS. 6 to 13 with an MPEG2 TS from the transmitting unit 100.

The decoding unit 320 may include a second decoder 322 for decoding the MPEG2 TS and the second decoder 322 may be a general MPEG2 TS decoder.

The second decoder 322 may receive to decode the MPEG2 TS from the network interface unit 310 and output the decoded PUs and PTSs thereof.

The synchronization unit 330 may identify a presentation unit to which a media presentation time is provided through the received sync information. For this, the network interface unit 310 recovers the PTSs of the PUs of which presentation times are provided and transfers the recovered PTSs to the synchronization unit 330 or receives the presentation time and PTSs of the corresponding unit from the transmitting apparatus 100.

For recovering the PTSs, elementary stream time recovery may be used.

The decoding unit 320 may further include a first decoder 321 to decode another media file received through the network interface unit 310, the first decoder 321 may be a decoder for recovering another format media file such as in a 3GPP file format or an MPEG2 TS decoder which is the same as the second decoder 322.

The synchronization unit 330 may synchronize an MPEG2 TS-based media file output from the second decoder 322 with another media file output from the first decoder 321 using decoding information transmitted from the transmitting apparatus 100, for example, media presentation times for the PUs.

The receiving apparatus 300 may playback the MPEG2 TS-based media file synchronized by the synchronization unit 330 and another media file together.

According to another embodiment, the decoded MPEG2 TS may be stored in a memory (not shown) prepared in the receiving apparatus 300. The sync information included in the received m2si box or xml file may be also stored in the receiving apparatus 300.

The stored sync information may be used later for synchronized presentation with other media components.

In addition, the byte offsets for the PTS discontinuities may be stored as attributes in the m2si box or the xml file including the sync information.

In this case, since all the segments of MPEG2 TS are combined, the byte offsets provided in the synchronization box or file should correspond to a start of the MPEG2 TS file.

FIG. 16 illustrates an embodiment of a segment list created by using an MPD.

The client performing HTTP streaming may access to the MPD and create the segment list as shown in FIG. 16 from the MPD at a specific client-local time “NOW”.

“NOW” may represent a current value of a clock in the reference client when an MPD instance is formed from the MPD.

The client that is not synchronized with a HTTP streaming server but synchronized with the UTC may experience problems of accessing to segments due to validity. HTTP streaming clients should synchronize their own clocks with a precise universal time.

FIG. 17 illustrates an embodiment of a method of synchronizing an MPEG2 TS-based media file with a 3GPP media file and playing back.

Referring to FIG. 17, a specific PU PU_(y) included in an MPEG2 TS media file may be synchronized with a sample corresponding to the 3GPP media file and played back using the sync information as described above in relation to FIGS. 6 to 12.

In the embodiment as shown in FIG. 17, the m2si box including MPD information, 3GPP file format information for segment and sync information may be given as follows.

-   -   MPD Information:

availabilityStartTime=2010-05-30T 09:30:10Z

SegmentInfo duration=PT2S (Segment boundary shown is for segment #32)

-   -   3GPP FF Information for segment:

time scale=48000

track_ID 1=(Video)

decode_time=2974186

composition_offset=1602

track_ID 2=(Audio)

decode_time=2976000

-   -   m2si (corresponding)

PID=101

presentation_time=2977120

In this case, the UTC used for rendering PU_(y) which is a PU played back according to the mapping method as described above in relation to FIGS. 5 to 8 may be calculated as the following equation 4. PU_(y)=(((PTS₁−PTS_(k))/time_scale_ext)+presentation_time/time_scale)+availabilityStartTime   (4)

In equation 4, the UTC “2010-05-30T 09:31:02.07Z” used for rendering PU_(y) may be obtained by substituting PTS₁ with PTS “43249500” of PU_(y), PTS_(k) with PTS “43245300” of a PU to which media presentation time “29977120” is provided, time_scale_ext with clock “90000” of PTS, time_scale with “48000” given in 3GPP file format information, and availabilityStartTime with “2010-05-30T 09:30:10Z” given in the MDP information.

FIGS. 18 and 19 illustrate embodiments of a method of implementing a media file using a MPD of MPEG Dynamic Adaptive Streaming over HTTP (DASH).

As shown in FIG. 18, an index segment which is sync information as described above in relation to FIGS. 6 to 17 may exist separately in MPEG-DASH.

The media file may be implemented with syntax having the same media file structure as the described above in relation to FIG. 13 and the index data may be stored after the MPEG2 TS media file. Therefore the number of stored files may be greatly reduced.

In addition, the client may confirm how many bytes correspond to the index data and how many tailings correspond to the media data in the media file.

In this case, the client may recognize that a Universal Resource Locator (URL) for a media segment coincides with a URL of the index segment corresponding to the media segment. Accordingly the client may divide the segments in combination with a request.

A general client may not use this optimization and may obtain the same effect through two ttp requests.

Another client which is not able to use the index data may neglect the same and just fetch the media data.

A method of receiving and processing the MPEG2 TS-based media file as described in relation to FIGS. 1 to 19 may be performed by an IPTV receiver according to an embodiment.

For this, the IPTV receiver may receive a media file transmitted from a transmitting side, for example, a media server, and a format of the media file may have a configuration as described in relation to FIGS. 6 to 19.

The IPTV receiver may synchronize an MPEG2 TS with other media and play back using sync information received from the transmitting side.

The IPTV receiver may perform a method of receiving a media file as described in relation to FIGS. 14 and 15.

Hereinafter, a configuration of the IPTV receiver according to an embodiment will be described in detail with reference to FIGS. 20 and 21.

FIG. 20 illustrates a block diagram of an IPTV receiver configuration according to an embodiment.

An IPTV receiver according to an embodiment may include a separate tuner for receiving terrestrial broadcasting, cable broadcasting or satellite broadcasting. However, in this disclosure, the IPTV receiver having a configuration of receiving an IPTV service provided over an IP network will be mainly described for convenience.

An ITF indicates Open IPTV Terminal Function and may suggest a receiver formed of function modules necessary for supporting the IPTV service.

The IPTV receiver may include a network interface unit 502, a TCP/IP manager 502, a service delivery manager 504, a PVR manager 505, a demultiplexer (Demux) 508, a data decoder 507, an audio/video decoder 512, an display and OSD unit 515, an application manager 513 and 514, a service information (SI) and Metadata database (DB) 511, a service discovery manager 509, a service control manager 503, a metadata manager 510 and a content DB 506.

Referring to FIG. 20, the network interface unit 501 receives and transmits packets from and to a network. Namely, the network interface unit 501 receives a service or media contents from a service provider over the network.

The TCP/IP manager 502 manages packet delivery from a source to a destination with respect to packets received by the IPTV receiver and packets transmitted from the IPTV receiver. In addition, the TCP/IP manager 502 classifies the received packets so as to correspond to a proper protocol, and outputs the classified packets to the service discovery manager 509, the service control manager 503 and the metadata manager 510.

The service delivery manager 504 controls the received service data. For example, in a case of controlling real-time streaming, the service delivery manager 504 may use a RTP/RTCP.

When the real-time streaming data is transported using the RTP, the service delivery manager 504 parses the received data packet according to the RTP and transports the parsed data packet to the Demux 508 or stores the same to the content DB 506 according to a control of the service manager 514. In addition, the service delivery manager 504 feeds the network reception information back to a server side providing the service using the RTCP.

The Demux 508 demultiplexes the received packets into audio, video and Program Specific Information data and transports the demultiplexed data respectively to the audio/video decoder 512 and the data decoder 507.

The data decoder 507 decodes, for example, service information such as PSI. Namely, the data decoder 507 receives a PSI section, a program and Service Information Protocol (PSIP) section or a DVB-SI section demultiplexed by the Demux 508 and decodes the received sections.

The data decoder 507 decodes the received sections to make a database for service information and the database for service information is stored in the SI & Metadata DB 511.

The audio/video decoder 512 decodes video data and audio data received from the Demux 508. The video data and audio data decoded in the audio/video decoder 512 are provided to a user through the display and OSD unit 515.

The application manager 513 and 514 manages the entire state of the IPTV receiver, provides a user interface and manages other managers. For this, the application manager includes a user interface manager 513 and a service manager 514.

The user interface manager 513 provides a Graphic User Interface (GUI) for a user using an On Screen Display (OSD), and performs receiver operations according to a key input from the user. For example, when receiving a key input for a channel selection from the user, the user interface manager 513 transports the key input signal to the service manager 514.

The service manager 514 controls managers related to a service such as the service delivery manager 504, the service discovery manager 509, the service control manager 503 and the metadata manager 510.

The service manager 514 makes a channel map and selects a channel using the channel map according to the key input received from the user interface manager 513. The service manager 514 receives channel service information for the data decoder 507 and sets audio and video PIDs of the selected channel to the Demux 508.

The service discovery manager 509 provides information necessary to select a service provider which provides services. When receiving a signal for the channel selection from the service manager 514, the service discovery manager 509 searches for a service using the information.

The service control manager 503 selects and controls the service. For example, the service control manager 503 uses the Internet Group Management Protocol (IGMP) or RTSP when the user selects a live broadcasting service which has the same scheme as the prior art, or selects and controls the service using the RTSP when the user selects a service of Video on Demand (VOD).

The RTP may provide a trick mode for the real time streaming. In addition, the service control manager 503 may initialize and manage sessions using an IP Multimedia Subsystem (IMS) through an IMC gateway. The above-described protocols are examples and may be replaced with other protocols.

The metadata manager 510 manages metadata associated with the services and stores the metadata in the SI and metadata DB 511.

The SI and metadata DB 511 and the content DB 506 may be respectively implemented using a nonvolatile RAM (NVRAM) or a flash memory and may also be implemented in logically separated two regions on the same storage area.

The PVR manager 505 is a module for recording and presenting live streaming contents, and may collect metadata for the recorded content and create additional information to be provided to the user such as a thumbnail image or an index.

A function of a controller of the IPTV receiver according to an embodiment may be implemented as divided into a plurality of modules like the TCP/IP manager 502, the service delivery manager 504, a PVR manager 505, the application manager 513 and 514, the service discovery manager 509, the service control manager 503 and the metadata manager 510 as shown in FIG. 20.

For example, the TCP/IP manager 502 may filter SD&S information using the foregoing target package information and control the network interface unit 501 to request only a payload or a segment corresponding to a specific package, for example, a package to which the IPTV receiver is subscribed, to a server and receive the same.

Alternatively, the TCP/IP manager 502 may filter SD&S information received in a multicast scheme using the target package information and cause the decoder 507 to parse and process only a payload or a segment corresponding to a specific package.

FIG. 21 illustrates a functional block diagram of a configuration of the IPTV according to another embodiment. In FIG. 21, a solid line indicates a data path and a dashed line indicates a control signal path.

A cable modem or a DSL modem, etc 601, which is an interface causing the ITF to connect to an IP network in a physical level, demodulates a signal transmitted through a physical medium and recovers a digital signal.

An Ethernet NIC 602 recovers IP data from a signal received through the physical interface. An IP network stack 607 processes each layer according to the IP protocol stack.

An XML parser 609 parses an XML document from among received IP data. A file handler 608 processes data transported in a file type through FLUTE or the like from among the received IP data.

An SI handler 611 processes a portion corresponding to IPTV service information from among the receive file type data and stores the processed data in a storage 612. An EPG handler 610 processes a portion corresponding to IPTV EPG information from among the receive file type data and stores the processed data in the storage 612.

The storage 612 stores various data such as the SI data and the EPG information data and the like.

An SI decoder 613 reads the SI data from the storage 612, and then, analyzes and obtains channel map information. An EPG decoder 614 analyzes EPG data stored in the storage 612 and recovers information necessary to form an EPG.

An ITF operation controller 615 is a main controller controlling an ITF operation of a channel change or an EPG display.

A channel service manager 616 may perform an operation such as a channel change according to a user input. An application manager 617 may perform an application service such as an EPG display according to a user input.

An MPEG-2 demultiplexer 603 extracts MPEG2 TS data from a received IP datagram and transports the extracted data to a corresponding module according to the PID.

An MPEG2 PSI/PSIP parser 604 extracts the PID of A/V data or PSI/PSIP data including connection information on program elements, and parses the extracted data.

An A/V decoder 605 decodes input audio and video data and delivers the decoded data to a display module 606. The display module 606 displays the decoded A/V data or application.

Hitherto an apparatus and method for transmitting and receiving media data according to embodiments has been described by exemplifying a case where a media file transmitted and received between the transmitting apparatus 100 and the receiving apparatus 300 includes MPEG2 TS data. However, the present disclosure is not limited thereto and may be applied to various transport stream formats besides the MPEG2 TS.

The invention can also be embodied as computer readable codes on a computer readable recording medium. The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage.

The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. Also, functional programs, codes, and code segments for accomplishing the present invention can be easily construed by programmers skilled in the art to which the present invention pertains.

Although embodiments have been described with reference to a number of illustrative embodiments thereof, it should be understood that numerous other modifications and embodiments can be devised by those skilled in the art that will fall within the spirit and scope of the principles of this disclosure. More particularly, various variations and modifications are possible in the component parts and/or arrangements of the subject combination arrangement within the scope of the disclosure, the drawings and the appended claims. In addition to variations and modifications in the component parts and/or arrangements, alternative uses will also be apparent to those skilled in the art. 

What is claimed is:
 1. A method of transmitting an MPEG2 Transport Stream (TS)-based media component, the method comprising: mapping a first presentation time stamp (PTS) of a first Presentation Unit (PU) to a media presentation timeline for synchronization with other media components; and transmitting timing information including a first media presentation time of the first PU and the media component, wherein a second media presentation time of a second PU is calculated by: subtracting the first PTS (PTS₁) from a second PTS of the second PU (PTS₂); dividing PTS difference (PTS₂−PTS₁) by a clock frequency of a PTS (timescale_(PTS)); multiplying the divided PTS difference ((PTS₂−PTS₁)/timescale_(PTS)) by a clock frequency of the media presentation timeline (timescale); and adding the first media presentation time for the first PU to the divided and multiplied PTS difference ((PTS₂−PTS₁)/timescale_(PTS)*timescale).
 2. The method according to claim 1, wherein the second media presentation time is obtained based on an adjusted PTS, when discontinuity occurs in a media stream.
 3. An apparatus for transmitting an MPEG2 Transport Stream (TS)-based media component, the apparatus comprising: a processor to map a first presentation time stamp (PTS) of a first Presentation Unit (PU) to a media presentation timeline for synchronization with other media components; and a transmitter to transmit timing information including a first media presentation time of the first PU and the media component, wherein a second media presentation time of a second PU is calculated by: subtracting the first PTS (PTS₁) from a second PTS of the second PU (PTS₂); dividing PTS difference (PTS₂−PTS₁) by a clock frequency of a PTS (timescale_(PTS)); multiplying the divided PTS difference ((PTS₂−PTS₁)/timescale_(PTS)) by a clock frequency of the media presentation timeline (timescale); and adding the first media presentation time for the first PU to the divided and multiplied PTS difference ((PTS₂−PTS₁)/timescale_(PTS)*timescale).
 4. The apparatus according to claim 3, wherein the second media presentation time is obtained based on an adjusted PTS, when discontinuity occurs in a media stream.
 5. A method of receiving an MPEG2 Transport Stream (TS)-based media component, the method comprising: receiving timing information including a first media presentation time of a first Presentation Unit (PU) and a media component, wherein the first media presentation time is in a media presentation timeline into which a first presentation time stamp (PTS) of the first PU is mapped for synchronization with other media components; and decoding and outputting the media component using a second media presentation time, wherein the second media presentation time of a second PU is calculated by: subtracting the first PTS (PTS₁) from a second PTS of the second PU (PTS₂); dividing PTS difference (PTS₂−PTS₁) by a clock frequency of a PTS (timescale_(PTS)); multiplying the divided PTS difference ((PTS₂−PTS₁)/timescale_(PTS)) by a clock frequency of the media presentation timeline (timescale); and adding the first media presentation time for the first PU to the divided and multiplied PTS difference ((PTS₂−PTS₁)/timescale_(PTS)*timescale).
 6. The method according to claim 5, wherein the second media presentation time is obtained based on an adjusted PTS, when discontinuity occurs in a media stream.
 7. An apparatus for receiving an MPEG2 Transport Stream (TS)-based media component, the apparatus comprising: a network interface to receive timing information including a first media presentation time of a first Presentation Unit (PU) and a media component, wherein the first media presentation time is in a media presentation timeline into which a first presentation time stamp (PTS) of the first PU is mapped for synchronization with other media components; and a decoder to decode and output the media component using a second media presentation time, wherein the second media presentation time of a second PU is calculated by: subtracting the first PTS (PTS₁) from a second PTS of the second PU (PTS₂); dividing PTS difference (PTS₂−PTS₁) by a clock frequency of a PTS (timescale_(PTS)); multiplying the divided PTS difference ((PTS₂−PTS₁)/timescale_(PTS)) by a clock frequency of the media presentation timeline (timescale); and adding the first media presentation time for the first PU to the divided and multiplied PTS difference ((PTS₂−PTS₁)/timescale_(PTS)*timescale).
 8. The apparatus according to claim 7, wherein the second media presentation time is obtained based on an adjusted PTS, when discontinuity occurs in a media stream. 